// axios的二次封装

// 引入axios
import axios from 'axios'
// 引入ElMessage,用于
import { ElMessage } from 'element-plus'
// 引入diffTokenTime,用于判断token是否过期
// import { diffTokenTime } from '@/utils/auth'
// 引入store
// import store from '@/store'
// 创建一个axios实例,设置baseUrl和timeout
const service = axios.create({
  baseURL: process.env.VUE_APP_BASE_API,
  timeout: 5000
})
// 配置请求拦截器
service.interceptors.request.use(
  (config) => {
    // // 如果localStorage存有token
    // if (localStorage.getItem('token')) {
    //   // 判断token是否超时
    //   if (diffTokenTime()) {
    //     // 退出
    //     store.dispatch('app/logout')
    //     // 返回错误
    //     return Promise.reject(new Error('token 失效了'))
    //   }
    // }
    // // 给请求头设置token
    // config.headers.Authorization = localStorage.getItem('token')
    return config
  },
  (error) => {
    return Promise.reject(new Error(error))
  }
)
// 请求响应拦截器
service.interceptors.response.use(
  (response) => {
    const { data } = response
    // console.log(data)
    return data
    // if (data.code === 200) {
    //   return data.data
    // } else {
    //   // 返回错误信息
    //   ElMessage.error(data.msg)
    //   return Promise.reject(new Error(data.msg))
    // }
    // const { data, meta } = response.data
    // // 如果返回的状态为200或者201
    // if (meta.status === 200 || meta.status === 201) {
    //   // 返回data
    //   return data
    // } else {
    //   // 返回错误信息
    //   ElMessage.error(meta.msg)
    //   return Promise.reject(new Error(meta.msg))
    // }
  },
  (error) => {
    console.log(error.response)
    error.response && ElMessage.error(error.response.data)
    return Promise.reject(new Error(error.response.data))
  }
)
export default service
